package org.alis.rpc.common.annotation;

import org.alis.rpc.common.contant.CacheStrategyEnum;
import org.alis.rpc.common.contant.CacheStructureEnum;
import org.alis.rpc.common.contant.CacheTypeEnum;
import org.apache.commons.lang3.StringUtils;

import java.lang.annotation.*;

/**
 *
 * 缓存种类
 * @author luochuan@thunisoft.com
 * @date  2020/7/3 13:44
 * @version v2.4.0.5
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface CacheVariety {

    /**
     * 数值
     * 用于做缓存命名
     */
    String value() default StringUtils.EMPTY;

    /**
     * cache 类型
     */
    CacheTypeEnum cacheType() default CacheTypeEnum.LOCAL;

    /**
     * 缓存的数据结构
     */
    CacheStructureEnum cacheStructure() default CacheStructureEnum.HASH;

    /**
     * 缓存失效策略
     */
    CacheStrategyEnum expireStrategy() default CacheStrategyEnum.FIFO;



}
